package com.sms.biz;

import java.util.List;
import java.util.Map;

import com.sms.dto.TestNumberDto;
import com.sms.po.TInvalidmsg;
import com.sms.po.TMsgRpt;
import com.sms.po.TSendmsg;
import com.sms.po.TWaitsend;
import com.sms.po.UserInfoSms;


/**
 * 报表查询BIZ
 * @author 20111012 by meng.xf
 */
public interface IReportBiz {
	
	/**
	 *  分页显示所有满足条件的下行短信数据
	 * @param phone 手机号
	 * @param status 状态:0-只查待发，1-只查已发，2-查所有
	 * @param userid 如果用户为非系统用户，则只能查自己本身的下行短信
	 * @param start 第几行开始
	 * @param limit 取多少行
	 * @return
	 */
	List<TSendmsg> showSmsDetailByPage(String phone,int status,UserInfoSms curUser,int start,int limit);
	
	/**
	 * 满足条件记录总数
	 * @param phone
	 * @param status 状态:0-只查待发，1-只查已发，2-查所有
	 * @param userid
	 * @return
	 */
	int getSmsDetailCount(String phone,int status,UserInfoSms curUser);
	
	
	/**
	 *  分页显示所有满足条件的下行短信数据
	 * @param curUser 
	 * @param status 状态:0-只查待发，1-只查已发，2-查所有
	 * @param start 第几行开始
	 * @param limit 取多少行
	 * @return
	 */
	List<TWaitsend> showWaitsendSmsByPage(UserInfoSms curUser,int status,int start,int limit);
	
	/**
	 * 满足条件记录总数
	 * @param curUser
	 * @param status 状态:0-只查待发，1-只查已发，2-查所有
	 * @return
	 */
	int getWaitsendSmsCount(UserInfoSms curUser,int status);
	
	
	/**
	 *  分页显示所有满足条件的下行短信数据
	 * @param phone 手机号
	 * @param userId 
	 * @param start 第几行开始
	 * @param limit 取多少行
	 * @return
	 */
	List<TestNumberDto> showTestNumberByPage(String userId,int start,int limit);
	
	/**
	 * 满足条件筛选测试号码记录总数
	 * @return
	 */
	int getTestNumberCount(String userId);
	
	
	/**
	 *  分页显示所有通过关键字查找的的短信
	 * @param phone 手机号
	 * @param userId 
	 * @param start 第几行开始
	 * @param limit 取多少行
	 * @return
	 */
	List<TestNumberDto> showTestNumber2ByPage(String userId,String searchStr,int start,int limit);
	
	/**
	 * 满足条件筛选测试号码记录总数
	 * @return
	 */
	int getTestNumber2Count(String userId,String searchStr);
	
	
	/**
	 * 用户发送统计报表
	 * @param map
	 * @param start
	 * @param limit
	 * @return
	 */
	List<TMsgRpt> showUserSendReportByPage(Map<String,String> map,int start,int limit);
	
	int getUserSendReportCount(Map<String,String> map);
	
	/**
	 * 通道发送统计报表
	 * @param map
	 * @param start
	 * @param limit
	 * @return
	 */
	List<TMsgRpt> showRouteSendReportByPage(Map<String,String> map,int start,int limit);
	
	int getRouteSendReportCount(Map<String,String> map);
	

	/**
	 *  分页显示所有满足条件的非法短信列表
	 * @param userId 
	 * @param start 第几行开始
	 * @param limit 取多少行
	 * @return
	 */
	List<TInvalidmsg> showInvalidmsgByPage(String userId,int start,int limit);
	
	/**
	 * 满足条件筛选测试号码记录总数
	 * @return
	 */
	int getInvalidmsgCount(String userId);
	
}
